package core;

/**
 * Constants shared by the client and server.
 *
 * @author eric, yiyi, Genki, Devang, Zdataoran, Jason, Gary
 */
public class Constants {

    /* ... General ... */
    public final static String CLIENT_VERSION = "0.0.0.9";
    public final static int BUG_USER_ID = 1;
    public final static int RANDOM_ID = 1000;
    public final static short MAX_HOTKEY_SIZE = 7;
    public final static short MAX_INVENTORY_SIZE = 24;
    public final static short MAX_TRADE_SIZE = 8;
    public final static short MAX_TARGET_COUNT = 4;
    public final static short MAX_PARTY_SIZE = 5;
    public final static short MAX_LEVEL = 50;
    public final static short MAX_ITEM_COUNT = 1000;
    public final static int MAX_MONEY = 1000000000;
    public final static float EXPERIENCE_DROP_RATE = 1f;
    public final static float ITEM_DROP_RATE = 1f;
    public final static float MONEY_DROP_RATE = 1f;
    public final static int DEFAULT_MAP = 1;
    public final static float[] DEFAULT_POSITION = {-3.60004f, -7.70184f, -0.036869f};
    public final static int AUTO_SAVE_DELAY = 60000;
    /* ... Non-Player Related ... */
    public final static short NPC_TYPE_REGULAR = 0;
    public final static short NPC_TYPE_SHOP = 1;
    public final static short NPC_TYPE_WARP = 2;
    /* ... Item Types ... */
    public final static short ITEM_TYPE_CONSUMABLE = 0;
    public final static short ITEM_TYPE_NON_CONSUMABLE = 1;
    public final static short ITEM_TYPE_ARMOR = 2;
    public final static short ITEM_TYPE_WEAPON = 3;
    /* ... Item Slots ... */
    public final static short ITEM_SLOT_HEAD_TOP = 1;
    public final static short ITEM_SLOT_HEAD_MID = 2;
    public final static short ITEM_SLOT_HEAD_BOTTOM = 3;
    public final static short ITEM_SLOT_BODY_TOP = 4;
    public final static short ITEM_SLOT_MAIN_HAND = 5;
    public final static short ITEM_SLOT_OFF_HAND = 6;
    public final static short ITEM_SLOT_BODY_MID = 7;
    public final static short ITEM_SLOT_BODY_BOTTOM = 8;
    public final static short ITEM_SLOT_SHOE = 9;
    public final static short ITEM_SLOT_ACCESSORY = 10;
    /* ... ... */
    public final static short MSG_NONE = 0;
    /* ... Requests ... */
    public final static short CMSG_AUTH = 1;
    public final static short CMSG_MSG = 3;
    public final static short CMSG_DISCONNECT = 5;
    public final static short CMSG_MOVE = 7;
    public final static short CMSG_HEART = 12;
    public final static short CMSG_GLOBAL_CHAT = 14;
    public final static short CMSG_PRIVATE_CHAT = 16;
    public final static short CMSG_GET_PRIVATE_CHAT = 254;

    public final static short CMSG_ITEM_USE = 18;
    public final static short CMSG_EQUIPMENTS = 20;
//    public final static short CMSG_EQUIPMENT_ADD = 22;
    public final static short CMSG_EQUIPMENT_REMOVE = 24;
//    public final static short CMSG_ITEM_EFFECT = 26;
    public final static short CMSG_NPC_TALK = 28;
    public final static short CMSG_NPC_BUY = 30;
    public final static short CMSG_NPC_SELL = 32;
    public final static short CMSG_ANSWER = 34;
    public final static short CMSG_HOTKEYS = 36;
    public final static short CMSG_HOTKEY_ADD = 38;
    public final static short CMSG_HOTKEY_REMOVE = 40;
    public final static short CMSG_HOTKEY_SET = 42;
    public final static short CMSG_REGISTER = 44;
    public final static short CMSG_BUGS = 46;
    public final static short CMSG_MAP = 48;
//    public final static short CMSG_VIEW_REMOVE = 50;
//    public final static short CMSG_VIEW_SET = 52;
    public final static short CMSG_MAP_CHANGE = 54;
    public final static short CMSG_BUDDIES = 56;
    public final static short CMSG_BUDDY_ADD = 58;
    public final static short CMSG_BUDDY_INVITE = 60;
    public final static short CMSG_BUDDY_REMOVE = 62;
    public final static short CMSG_GET_BUDDY_INVITES = 252;
    public final static short CMSG_ANIMATION = 64;
    public final static short CMSG_PARTY_CHAT = 66;
    public final static short CMSG_PUBLIC_CHAT = 68;
    public final static short CMSG_PARTY = 70;
    public final static short CMSG_PARTY_ADD = 72;
    public final static short CMSG_PARTY_REMOVE = 74;
    public final static short CMSG_PARTY_ACCEPT = 76;
    public final static short CMSG_PARTY_LEADER = 78;
    public final static short CMSG_PARTY_SHARE = 80;
//    public final static short CMSG_DEAD = 82;
    public final static short CMSG_INVENTORY = 84;
//    public final static short CMSG_INVENTORY_ADD = 86;
    public final static short CMSG_INVENTORY_REMOVE = 88;
    public final static short CMSG_INVENTORY_SET = 90;
    public final static short CMSG_REGISTER_BUG = 92;
//    public final static short CMSG_CREATE_BUG = 94;
//    public final static short CMSG_QUESTION = 96;
    public final static short CMSG_BATTLE_ADD = 98;
    public final static short CMSG_BATTLE_END = 100;
    public final static short CMSG_ATTACK = 102;
//    public final static short CMSG_BATTLE_REMOVE = 104;
    public final static short CMSG_JUMP = 106;
//    public final static short CMSG_MONEY = 108;
//    public final static short CMSG_CREATE_NPC = 110;
    public final static short CMSG_RESPAWN = 112;
//    public final static short CMSG_PARTY_UPDATE = 114;
//    public final static short CMSG_PARTY_ONLINE = 116;
    public final static short CMSG_PARTY_DESTROY = 118;
    public final static short CMSG_BATTLE_START = 120;
    public final static short CMSG_BATTLE_SET = 122;
//    public final static short CMSG_ELIMINATE_CHOICES = 124;
//    public final static short CMSG_ATTRIBUTE_UPDATE = 126;
    public final static short CMSG_BOARD_DICE = 128;
//    public final static short CMSG_MODE_START = 130;
    public final static short CMSG_MODE_END = 132;
//    public final static short CMSG_BOARD_MOVE = 134;
//    public final static short CMSG_BOARD_PLAYER_TURN = 136;
    public final static short CMSG_BOARD_ANSWER = 138;
    public final static short CMSG_BOARD_QUESTION = 140;
    public final static short CMSG_MODE_READY = 142;
//    public final static short CMSG_BOARD_TIME = 144;
//    public final static short CMSG_BOARD = 146;
//    public final static short CMSG_BOARD_WINNER = 148;
//    public final static short CMSG_EXPERIENCE = 150;
//    public final static short CMSG_LEVEL = 152;
//    public final static short CMSG_BOARD_END_TURN = 154;
//    public final static short CMSG_BUDDY_ONLINE = 156;
//    public final static short CMSG_SURVIVAL_MODE = 158;
//    public final static short CMSG_SURVIVAL_TIME = 160;
//    public final static short CMSG_CREATE_MAP = 162;
//    public final static short CMSG_REMOVE_MAP = 164;
    public final static short CMSG_MODE_LEAVE = 166;
//    public final static short CMSG_SURVIVAL_WAVE = 168;
    public final static short CMSG_BOARD_MOVE_SET = 170;
//    public final static short CMSG_BOARD_LOCATION = 172;
    public final static short CMSG_TRADE = 174;
    public final static short CMSG_TRADE_ACCEPT = 176;
    public final static short CMSG_TRADE_CONFIRM = 178;
    public final static short CMSG_TRADE_SET = 180;
    public final static short CMSG_TRADE_REMOVE = 182;
    public final static short CMSG_QUESTION_COMMENT = 184;
//    public final static short CMSG_QUESTION_RATIO = 186;
    public final static short CMSG_DUEL = 188;
    public final static short CMSG_DUEL_ACCEPT = 190;
//    public final static short CMSG_DUEL_START = 192;
//    public final static short CMSG_DUEL_END = 194;
    public final static short CMSG_DUEL_TOPICS = 196;
    public final static short CMSG_DUEL_ANSWER = 198;
    public final static short CMSG_TARGET_SET = 200;
    public final static short CMSG_TARGET_REMOVE = 202;
    public final static short CMSG_QUESTION_LOG = 206;
    public final static short CMSG_LOCAL_PLAYERS = 250;
    /* ... Responses ... */
    public final static short SMSG_LOCAL_PLAYERS = 251;
    public final static short SMSG_AUTH = 2;
    public final static short SMSG_MSG = 4;
    public final static short SMSG_DISCONNECT = 6;
    public final static short SMSG_MOVE = 8;
    public final static short SMSG_REMOVE_USER = 9;
    public final static short SMSG_CREATE = 10;
    public final static short SMSG_GLOBAL_CHAT = 15;
    public final static short SMSG_PRIVATE_CHAT = 17;
    public final static short SMSG_ITEM_USE = 19;
    public final static short SMSG_EQUIPMENTS = 21;
    public final static short SMSG_EQUIPMENT_ADD = 23;
    public final static short SMSG_EQUIPMENT_REMOVE = 25;
    public final static short SMSG_ITEM_EFFECT = 27;
    public final static short SMSG_NPC_TALK = 29;
    public final static short SMSG_NPC_BUY = 31;
    public final static short SMSG_NPC_SELL = 33;
    public final static short SMSG_ANSWER = 35;
    public final static short SMSG_HOTKEYS = 37;
    public final static short SMSG_HOTKEY_ADD = 39;
    public final static short SMSG_HOTKEY_REMOVE = 41;
    public final static short SMSG_HOTKEY_SET = 43;
    public final static short SMSG_REGISTER = 45;
    public final static short SMSG_SPAWN_BUG = 47;
//    public final static short SMSG_MAP = 49;
    public final static short SMSG_VIEW_REMOVE = 51;
    public final static short SMSG_VIEW_SET = 53;
    public final static short SMSG_MAP_CHANGE = 55;
    public final static short SMSG_BUDDIES = 57;
    public final static short SMSG_BUDDY_ADD = 59;
    public final static short SMSG_BUDDY_INVITE = 61;
    public final static short SMSG_BUDDY_REMOVE = 63;
    public final static short SMSG_SEND_BUDDY_INVITES = 253;
    public final static short SMSG_ANIMATION = 65;
    public final static short SMSG_PARTY_CHAT = 67;
    public final static short SMSG_PUBLIC_CHAT = 69;
    public final static short SMSG_SEND_PRIVATE_CHAT = 255;

    public final static short SMSG_PARTY = 71;
    public final static short SMSG_PARTY_ADD = 73;
    public final static short SMSG_PARTY_REMOVE = 75;
    public final static short SMSG_PARTY_ACCEPT = 77;
    public final static short SMSG_PARTY_LEADER = 79;
    public final static short SMSG_PARTY_SHARE = 81;
    public final static short SMSG_DEAD = 83;
    public final static short SMSG_INVENTORY = 85;
    public final static short SMSG_INVENTORY_ADD = 87;
    public final static short SMSG_INVENTORY_REMOVE = 89;
    public final static short SMSG_INVENTORY_SET = 91;
//    public final static short SMSG_REGISTER_BUG = 93;
    public final static short SMSG_CREATE_BUG = 95;
    public final static short SMSG_QUESTION = 97;
    public final static short SMSG_BATTLE_ADD = 99;
//    public final static short SMSG_BATTLE_END = 101;
    public final static short SMSG_ATTACK = 103;
    public final static short SMSG_BATTLE_REMOVE = 105;
    public final static short SMSG_JUMP = 107;
    public final static short SMSG_MONEY = 109;
    public final static short SMSG_CREATE_NPC = 111;
    public final static short SMSG_RESPAWN = 113;
    public final static short SMSG_PARTY_UPDATE = 115;
    public final static short SMSG_PARTY_ONLINE = 117;
    public final static short SMSG_PARTY_DESTROY = 119;
    public final static short SMSG_BATTLE_START = 121;
    public final static short SMSG_BATTLE_SET = 123;
    public final static short SMSG_ELIMINATE_CHOICES = 125;
    public final static short SMSG_ATTRIBUTE_UPDATE = 127;
    public final static short SMSG_BOARD_DICE = 129;
    public final static short SMSG_MODE_START = 131;
    public final static short SMSG_MODE_END = 133;
    public final static short SMSG_BOARD_MOVE = 135;
    public final static short SMSG_BOARD_PLAYER_TURN = 137;
    public final static short SMSG_BOARD_ANSWER = 139;
    public final static short SMSG_BOARD_QUESTION = 141;
    public final static short SMSG_MODE_READY = 143;
    public final static short SMSG_BOARD_TIME = 145;
    public final static short SMSG_BOARD = 147;
    public final static short SMSG_BOARD_WINNER = 149;
    public final static short SMSG_EXPERIENCE = 151;
    public final static short SMSG_LEVEL = 153;
    public final static short SMSG_BOARD_END_TURN = 155;
    public final static short SMSG_BUDDY_ONLINE = 157;
    public final static short SMSG_SURVIVAL_MODE = 159;
    public final static short SMSG_SURVIVAL_TIME = 161;
    public final static short SMSG_CREATE_MAP = 163;
    public final static short SMSG_REMOVE_MAP = 165;
    public final static short SMSG_MODE_LEAVE = 167;
    public final static short SMSG_SURVIVAL_WAVE = 169;
//    public final static short SMSG_BOARD_MOVE_SET = 171;
    public final static short SMSG_BOARD_LOCATION = 173;
    public final static short SMSG_TRADE = 175;
    public final static short SMSG_TRADE_ACCEPT = 177;
    public final static short SMSG_TRADE_CONFIRM = 179;
    public final static short SMSG_TRADE_SET = 181;
    public final static short SMSG_TRADE_REMOVE = 183;
    public final static short SMSG_QUESTION_COMMENT = 185;
    public final static short SMSG_QUESTION_RATIO = 187;
    public final static short SMSG_DUEL = 189;
    public final static short SMSG_DUEL_ACCEPT = 191;
    public final static short SMSG_DUEL_START = 193;
    public final static short SMSG_DUEL_END = 195;
    public final static short SMSG_DUEL_TOPICS = 197;
    public final static short SMSG_DUEL_ANSWER = 199;
    public final static short SMSG_TARGET_SET = 201;
    public final static short SMSG_TARGET_REMOVE = 203;
    public final static short SMSG_UPDATE_HEALTH = 205;
    public final static short SMSG_QUESTION_LOG = 207;
    public final static short SMSG_HEALTH = 209;
    public final static short SMSG_BATTLE_TIME = 211;
    public final static short SMSG_QUESTION_HINT = 213;
    public final static short SMSG_UPDATE_ATTACK_POWER = 215;
    public final static short SMSG_UPDATE_DEFENSE = 217;
    /* ... Item Effects ... */
    public final static short ITEM_HEAL = 1;
    public final static short ITEM_HEAL_P = 2;
    public final static short ITEM_MAX_HEALTH = 3;
    public final static short ITEM_MAX_HEALTH_P = 4;
    public final static short ITEM_MOVE_SPEED = 5;
    public final static short ITEM_MOVE_SPEED_P = 6;
    public final static short ITEM_DEFENSE = 7;
    public final static short ITEM_DEFENSE_P = 8;
    public final static short ITEM_MONEY = 9;
    public final static short ITEM_MONEY_P = 10;
    public final static short ITEM_EXPERIENCE = 11;
    public final static short ITEM_EXPERIENCE_P = 12;
    public final static short ITEM_RETURN = 13;
    public final static short ITEM_ELIMINATE_CHOICES = 14;
    public final static short ITEM_RANDOM_ITEM = 15;
    public final static short ITEM_ATTACK_TIME = 16;
    public final static short ITEM_HINT = 17;
    /* ... Attributes ... */
    public final static short ATTRIBUTE_HEALTH = 1;
    public final static short ATTRIBUTE_MAX_HEALTH = 2;
    public final static short ATTRIBUTE_MOVE_SPEED = 3;
    public final static short ATTRIBUTE_DEFENSE = 4;
    public final static short ATTRIBUTE_ATTACK_MIN = 5;
    public final static short ATTRIBUTE_ATTACK_MAX = 6;
    public final static short ATTRIBUTE_ATTACK_DELAY = 7;
    public final static short ATTRIBUTE_ATTACK_RANGE = 8;
    public final static short ATTRIBUTE_SCALE = 9;
    public final static short ATTRIBUTE_LEVEL = 10;
    public final static short ATTRIBUTE_EXPERIENCE = 11;
    public final static short ATTRIBUTE_MONEY = 12;
    /* ... Board Tile Directions ... */
    public final static short BOARD_NONE = 0;
    public final static short BOARD_NORTH = 1;
    public final static short BOARD_EAST = 2;
    public final static short BOARD_SOUTH = 3;
    public final static short BOARD_WEST = 4;
    /* ... Board Tile Types ... */
    public final static short BOARD_START = 0;
    public final static short BOARD_END = 1;
    public final static short BOARD_REGULAR = 2;
    public final static short BOARD_BONUS = 3;
    public final static short BOARD_BLACKHOLE = 4;
    public final static short BOARD_GOLD = 5;
    /* ... Board Game Mode ... */
    public final static short BOARD_MODE_REGULAR = 0;
    public final static short BOARD_MODE_RACE = 1;
    /* ... Game Mode ... */
    public final static short GAME_MODE_BOARD = 0;
    public final static short GAME_MODE_SURVIVAL = 1;
    /* ... Game Invitation ... */
    public final static short INVITATION_BUDDY = 0;
    public final static short INVITATION_PARTY = 1;
    public final static short INVITATION_TRADE = 2;
    public final static short INVITATION_DUEL = 3;

	/* ... Log Files ... */
	public final static String LOG_DEBUG = "debug_log.txt";
	public final static String LOG_ERROR = "error_log.txt";

        /* ... System properties ... */
        public final static String NEWLINE = System.getProperty("line.separator");

}